// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
const TcbRouter = require('tcb-router');
const db = cloud.database()
const _ = db.command
// 云函数入口函数
exports.main = async (event, context) => {

  const app = new TcbRouter({ event });
  // 路由为字符串，该中间件只适用于 view_inc 路由
  app.router('view_inc', async (ctx, next) => {
    try {
      return await db.collection('news').doc(event.id).update({
        // data 传入需要局部更新的数据
        data: {
          view: _.inc(1)
        }
      })
    } catch (e) {
      console.error(e)
    }
    await next(); // 执行下一中间件
  })

  // 路由为字符串，该中间件只适用于 appreciate_inc 路由
  app.router('appreciate_inc', async (ctx, next) => {
    try {
      return await db.collection('news').doc(event.id).update({
        // data 传入需要局部更新的数据
        data: {
          appreciate: _.inc(event.value)
        }
      })
    } catch (e) {
      console.error(e)
    }
    await next(); // 执行下一中间件
  })

  // 路由为字符串，该中间件只适用于 comment_inc 路由
  app.router('comment_inc', async (ctx, next) => {
    try {
      return await db.collection('news').doc(event.id).update({
        // data 传入需要局部更新的数据
        data: {
          comment: _.inc(1)
        }
      })
    } catch (e) {
      console.error(e)
    }
    await next(); // 执行下一中间件
  })

  return app.serve();
}